《PTE:Predictive Text Embedding through Large-scale Heterogeneous Text Networks》
学习有意义且有效的文本(例如word
、document
)的 representation
,是许多机器学习任务(例如文本分类、文本聚类、文本检索)的关键前提条件。传统上,每个word
都相互独立地表示,并且每个document
都表示为 bag-of-words
。然而,这两种representation
都存在数据稀疏、多义性(polysemy
) 、同义性(synonymy
) 等问题,因为在这两种representation
中不同word
之间的语义相关性(semantic relatedness
) 通常被忽略。
word
和document
的分布式representation
通过在低维空间中表达word
和document
,从而有效地解决了这个问题。在这个低维空间中,相似的word
/document
彼此紧密地嵌入。这些方法的基本思想来自于分布式假设( distributional hypothesis
):一个单词的意义是由它的使用环境所形成的 (you shall know a word by the company it keeps
)。 《Distributed representations of words and phrases and their compositionality》
提出了一种简单而优雅的 word embedding
模型,称作 SkipGram
。SkipGram
使用 target word
的 embedding
来预测局部窗口( local window
)中每个单独的 context word
的 embedding
。《Distributed representations of sentences and documents》
进一步扩展了这一思想,并提出了 Paragraph Vector
从而嵌入任意的文本片段,例如sentence
和document
。其基本思想是:使用 sentence/document
的embedding
来预测 sentence/document
中word
的 embedding
。和也利用 word context
的分布式相似性(distributional similarity
) 的其它经典方法(如布朗聚类 Brown clustering
、最近邻法)相比,这些 text embedding
方法已被证明是非常有效的,可以在单台机器上扩展到数百万个 document
。
由于采用无监督学习,通过这些 text embedding
模型学到的 representation
足够通用,可以应用于分类(classification
) 、聚类(clustering
)、以及排序(ranking
) 等各种任务。然而,和端到端的复杂的深度学习方法(如卷积神经网络)相比时,text embedding
的性能通常在特定任务上达不到要求。这毫不奇怪,因为深度神经网络在学习数据 representation
时充分利用了可用于任务的 label
信息。大多数 text embedding
方法在学习 representation
时都无法考虑 label
信息。只有在使用训练好的 representation
作为特征来训练分类器时,label
才会被使用。换句话讲,无监督的 text embedding
对于不同的任务是可泛化generalizable
的,但是对于特定任务的预测能力较弱。
尽管存在这一缺陷,但是和深度神经网络相比,text embedding
方法仍有相当大的优势。
首先,深度神经网络(尤其是卷积神经网络)的训练是计算密集型的,在处理大量数据的时候通常需要多个 GPU
或 CPU
集群。
其次,卷积神经网络通常假设大量的标记样本可用,这在许多任务中是不现实的。对于容易获取的未标记数据,卷积神经网络通常使用预训练的方式来间接利用。
第三,卷积神经网络的训练需要多许多超参数进行详尽的调优,即使对于专家而言也是非常耗时的,而对于非专家而言是不可行的。
另一方面,像 SkipGram
这样的 text embedding
方法效率更高、更容易调优、并且天然地适应于未标记数据。
在论文 《PTE:Predictive Text Embedding through Large-scale Heterogeneous Text Networks》
中,作者通过提出 predictive text embedding: PTE
来填补这一空白。PTE
具有无监督 text embedding
的优点,但是在 representation learning
过程中自然地利用了标记信息。通过 PTE
,我们可以从有限的标记样本和大量的未标记样本中联合学习有效的低维 representation
。与无监督 embedding
相比,这种 representation
针对特定任务进行了优化,就像卷积神经网络所作的那样。即,PTE
学到的 representation
对特定的分类任务具有很强的预测能力。
PTE
自然地扩展了作者之前的无监督信息网络 embedding
工作(《Line: Large-scale information network embedding》
),并首先提出通过异质文本网络(heterogeneous text networt
)学习word
的低维 embedding
。该网络对 word-word
、word-document
、word-label
之间不同 level
的共现信息(co-occurrence information
)进行编码。该网络被嵌入到一个低维向量空间中,该空间保留了网络中顶点之间的二阶邻近性(second-order proximity
)。任意一段文本(例如 sentence
或 document
)的 representation
可以简单地推断为 word representation
的均值,结果证明这是非常有效的。整个优化过程仍然非常高效,在单台机器上可以扩展到数百万个 document
和数十亿个 token
。
论文对现实世界的文本语料库进行了广泛的实验,包括 long document
和 short document
。实验结果表明:PTE
在各种文本分类任务中显著优于 SOTA
的无监督 embedding
。与用于文本分类的端到端卷积神经网络相比,PTE
在 long document
上表现更好、在 short document
上表现相当。与卷积神经网络相比,PTE
具有各种优势,因为它更高效、有效地利用大规模未标记数据,并且对模型超参数不太敏感。作者相信PTE
的探索指向了一个学习 text embedding
的方向,该方向可以在特定任务中与深度神经网络进行正面竞争。
总而言之,论文的贡献如下:
论文提出以半监督的方式学习 predictive text embedding
。未标记数据和标记信息被集成到一个异质文本网络中,该网络包含不同 level
的文本共现信息。
论文提出了一种高效的算法 PTE
,它通过将异质文本网络嵌入到低维空间中来学习文本的分布式 representation
。该算法非常有效,几乎没有需要调优的超参数。
论文使用各种真实世界的数据集进行了广泛的实验,并将 PTE
与无监督 text embedding
、卷积神经网络进行了比较。
相关工作:我们的工作主要涉及分布式文本 representation learning
和信息网络 embedding
。
Distributed Text Embedding
:文本的分布式 representation
已被证明在许多自然语言处理任务中非常有效,例如单词类比( word analogy
)、词性标注( POS tagging
)、parsing
、语言建模 (language modeling
)、以及情感分析(sentiment analysis
)。现有的方法通常可以分为两类:无监督方法、监督方法。
最近提出的无监督方法通常通过在局部上下文( local context
) (例如 SkipGram
)或者 document
级别(例如 Paragraph Vector
),利用 word co-occurrence
来学习 word/document
的 embedding
。这些方法非常有效,可以扩展到数百万个 document
。
监督方法通常基于深度神经网络架构,例如 recursive neural tensor network: RNTN
、convolutional neural network: CNN
。在 RNTN
中,每个 word
都嵌入到一个低维向量中,并且通过在 parse tree
中的子短语( sub-phrase
)或者 word
上应用相同的、基于张量(tensor-based
) 的组合函数(composition function
)来递归学习短语的 embedding
。在 CNN
中,每个 word
也用一个向量来表示,并且在 sentence
的不同位置的上下文窗口上应用相同的卷积核,然后是一个最大池化层和一个全连接层。
这两类方法之间的主要区别在于它们如何在 representation learning
阶段利用标记信息和未标记信息。无监督方法在 representation learning
时不包含标记信息,仅在将数据转换为学到的 representation
之后,才使用 label
来训练分类器。RNTN
和 CNN
将 label
直接结合到 representation learning
中,因此学到的 representation
特别针对分类任务进行了调优。然而,为了融合未标记的样本,这些神经网络通常必须使用间接方法,例如使用无监督方法预训练 word embedding
。和这两类方法相比,PTE
以半监督方式学习 text embedding
,representation learning
算法直接利用标记信息和大量的未标记数据。
与 predictive word embedding
类似的另一项工作是 《Learning word vectors for sentiment analysis》
,该工作学习特别针对情感分析调优的 word embedding
。然而,他们的方法无法扩展到数百万个 document
,也无法推广到其它分类任务。
Information Network Embedding
:我们的工作还与 network/graph embedding
问题有关,因为 PTE
的 word representation
是通过异质文本网络( heterogeneous text network
)学到的。
将 network/graph
嵌入到低维空间,这在各种应用中非常有用,例如节点分类、链接预测。MDS
、IsoMap
、Laplacian eigenmap
等经典 graph embedding
算法不适用于嵌入包含数百万个顶点、数十亿条边的大型网络。
最近有一些工作试图嵌入非常大的现实世界网络。《Deepwalk: Online learning of social representations》
提出了一种叫做 DeepWalk
的 network embedding
模型,该模型在网络上使用截断的随机游走,并且仅适用于具有二元边的网络。我们先前的工作提出了一种新的大规模网络嵌入模型,称作 LINE
。LINE
适用于任意类型的信息网络,无向或有向、二元边或者带权边。LINE
模型优化了一个目标函数,该目标函数旨在保持局部网络结构 (local network structure
)和全局网络结构( global network structure
)。DeepWalk
和 LINE
都是无监督的,只能处理同质网络(homogeneous network
)。PTE
使用的 network embedding
算法扩展了 LINE
从而处理异质网络(网络中存在多种类型的顶点和边)。
让我们从正式定义 predictive text embedding
问题(通过异质文本网络)来开始。与学习文本的通用语义representation
的无监督 text embedding
方法(包括 SkipGram
和 Paragraph Vector
)相比,我们的目标是学习针对给定文本分类任务优化的文本 representation
。换句话讲,我们期待 text embedding
对给定任务的性能具有很强的预测能力。基本思想是:在学习 text embedding
时结合标记信息和未标记信息。为了实现这一点,首先需要有一个统一的 representation
对这两类信息(标记的和未标记的)进行编码。在本文中,我们提出了不同类型的网络来实现这一点,包括 word-word co-occurrence network
、word-document network
、word-label network
。
word-word co-occurrence network
:word-word
共现网络表示为 local context
)中的 word
共现信息。word
的词表 vocabulary
,word
之间的边的集合(共现关系)。word
word
在给定窗口大小的上下文窗口中同时出现的次数。
word-word
网络捕获局部上下文中的 word
共现,这是现有 word embedding
方法(如 SkipGram
)使用的基本信息。除了局部上下文之外,document level
的 word
共现也在经典的文本 representation
中被广泛探索,例如统计主题模型( statistical topic model
)(如 latent Dirichlet allocation: LDA
)。为了捕获 document level
的 word
共现,我们引入了另一个网络,即 word-document
网络。
word-document network
: word-document
网络表示为二部图 document
的集合,word
的集合,word
到 document
的链接构成的边集合。word
document
word
document
word-word
网络和 word-document
网络对大规模语料库中的未标记信息进行编码,在局部上下文 level
和 document level
捕获 word
共现。为了对标记信息进行编码,我们引入了 word-label
网络,该网络在 category-level
捕获 word
共现。
word-label network
:word-label
网络表示为二部图 class
的集合,word
的集合,word
到 class
的链接构成边的集合。category-level
的 word
共现。word
class
document
word
document
class label
。
上述三种网络可以进一步融合为一个异质文本网络(heterogeneous text network
)(如下图所示)。
Heterogeneous Text Network
:异质文本网络是由标记文本数据和未标记文本数据共同构建的 word-word
网络、word-document
网络、word-label
网络的组合。它捕获不同 level
的 word
共现,并同时包含标记信息和未标记信息。
注意,异质文本网络的定义可以推广到融合其它类型的网络,例如 word-sentence
网络、word-paragraph
网络、document-label
网络等等。在这项工作中,我们使用三种类型的网络(word-word
、word-document
、word-label
)作为说明性示例。我们特别关注 word
网络,以便首先将 word
表示为低维空间。然后可以通过聚合 word representation
来计算其它文本单元(如 stentence
或 paragraph
)的 representation
。
子网的构建需要结合具体任务,并且对任务性能产生重大影响。但是论文并未给出子网构建的原则。可以借鉴的是:这里的
word-word
捕获局部共现、word-document
捕获全局共现。
最后,我们正式定义 predictive text embedding
问题如下:
Predictive Text Embedding
:给定具有标记信息和未标记信息的大量文本数据,predictive text embedding
问题旨在通过将由文本数据构建的异质文本网络嵌入到低维向量空间中从而学习 word
的低维 representation
。
接下来我们将介绍通过异质文本网络学习 predictive text embedding
的方法。我们的方法首先将异质文本网络嵌入到低维空间来学习 word
的向量 representation
,然后根据学到的 word embedding
推断 text embedding
。由于异质文本网络由三个二部图组成,我们首先介绍一种嵌入单个二部图的方法。
在我们之前的工作中,我们引入了 LINE
模型来学习大规模信息网络的 embedding
。LINE
主要是为同质网络而设计的,即具有相同类型节点的网络。LINE
无法直接应用于异质网络,因为不同类型边的权重不具有可比性。在这里,我们首先将 LINE
模型用于嵌入二部图。基本思想是:利用顶点之间的二阶邻近性,假设具有相似邻域的顶点彼此相似,因此应该在低维空间中紧密地表示。
对于二部图,假设顶点
和顶点 具有相似的邻域,则暗示了 和 的顶点类型相同。
给定一个二部图
其中:embedding
向量,embedding
向量。
对于 second-order proximity
)可以由它们的条件分布
其中:
KL-divergence
函数。
degree
:
经验分布
忽略常数项,则上述目标函数重写为:
我们可以采用带边采样(edge sampling
) 和负采样( nagative sampling
)的随机梯度下降法来求解该最优化问题。在梯度下降的每一步:
首先以正比于权重 binary edge
edge sampling
。
然后通过noise distribution
nagative sampling
。
采样过程解决了学习 network embedding
中随机梯度下降的重大缺陷。详细的优化过程可以参考 LINE
的原始论文。
word-word
网络、word-document
网络、word-label
网络的 embedding
都可以通过上述模型来学习。注意,word-word
网络本质上是一个二部图,可以将每条无向边视为两条有向边,并且将 embedding
。
异质文本网络由三个二部图组成:word-word
网络、word-document
网络、word-label
网络,其中 word
顶点在三个网络之间共享。为了学习异质文本网络的 embedding
,一种直观的方法是共同嵌入三个二部图,这可以通过最小化以下目标函数来实现:
上述目标函数可以通过不同的方式进行优化,具体取决于如何使用标记信息(即 word-label
网络)。
一种解决方案是同时使用未标记数据(word-word
网络和 word-document
网络)和标记数据训练模型。我们称这种方法为联合训练( joint training
)。
另一种解决方案是首先使用未标记数据来学习 embedding
,然后使用 word-label
网络来微调 embedding
。这是受到深度学习文献中预训练和微调( pre-training and fine-tuning
)思想的启发。
在联合训练中,所有三种类型的网络一起使用。优化目标 edge sampling
)(在每个 step
中对边进行采样从而进行模型更新,采样概率与边的权重成正比)。然而,当网络是异质的时候,不同类型顶点之间的边的权重是不可比的。更合理的解决方案是从三组边中交替采样。
PTE
联合训练算法:
输入:
异质文本网络的三个子网
采样数量
负采样比例
输出:所有单词的 embedding
算法步骤:
循环迭代,直到迭代了 step
。迭代过程为:
从 word embedding
。
从 word embedding
和 document embedding
。
从 word embedding
和 label embedding
。
PTE
预训练和微调算法:
输入:
异质文本网络的三个子网
采样数量
负采样比例
输出:所有单词的 embedding
算法步骤:
预训练阶段:循环迭代,直到迭代了 step
。迭代过程为:
从 word embedding
。
从 word embedding
和 document embedding
。
微调阶段:循环迭代,直到迭代了 step
。迭代过程为:
从 word embedding
和 label embedding
。
Text Embedding
:异质文本网络对不同 level
的 word co-occurrence
进行编码,这些编码是从未标记数据和特定分类任务的标记信息中提取的。因此,通过嵌入异质文本网络学习的 word representation
不仅更加鲁棒,而且针对该特定任务进行了优化。一旦学到了 word vector
,就可以通过简单地对这段文本中 word
的向量求均值来获得任意一段文本的 representation
。即,一段文本 representation
可以计算为:
其中 word
embedding
向量。
事实上,word embedding
的均值是最小化以下目标函数的最优解:
其中 word embedding
和 text embedding
之间的、欧式距离的损失函数。
与之相关的是 paragraph vector
的推断过程,它的目标函数相同但是具有不同的损失函数:
然而这个损失函数对应的目标函数没有闭式解close form solution
,因此必须通过梯度下降算法来优化。
数据集:我们选择了长document
、短document
两种类型的数据集:
长document
数据集:
20newsgroup
数据集:广泛使用的文本分类数据集,包含 20
个类别。
wiki
数据集:2010
年 4
月的维基百科数据集,包含大约 200
万篇英文文章。我们仅保留 2010
年维基百科中出现的常见词汇。我们选择了七种不同类别,包括 Art, History, Human, Mathematics, Nature, Technology, Sports
。每种类别我们随机选择 9000
篇文章作为标记的document
来训练。
Imdb
数据集:一个情感分类数据集。为避免训练数据和测试数据之间的分布偏差,我们随机混洗了训练数据和测试数据。
RCV1
数据集:一个大型文本分类基准语料库。我们从数据集中抽取了四个子集,包括 Corporate, Economics, Government, Market
。在 RCV1
数据集中,文档已经被处理为 bag-of-word: BOW
的格式,因此 word
的顺序已经被丢失。
短document
数据集:
DBLP
数据集:包含来自计算机科学领域论文的标题。我们选择了六个领域的论文,包括 database, articial intelligence, hardware, system, programming languages, theory
等。对于每个领域,我们选择该领域具有代表性的会议并收集该会议中发表的论文作为标记的 document
。
MR
数据集:一个电影评论数据集,每条评论仅包含一个 sentence
。
Twitter
数据集:用于情感分类的 Tweet
语料库。我们从中随机抽取了 120
万 Tweets
然后拆分为训练集和测试集。
我们并没有在原始数据上执行进一步的文本归一化(text normalization
),如删除停用词或者词干化。下表给出了数据集的详细统计信息。
baseline
方法:我们将 PTE
算法和其它的文本数据 representation learning
算法进行比较,包括经典的 BOW
算法、 SOTA
的无监督 text embedding
、以及 SOTA
的监督 text embedding
方法。
BOW
:经典的 BOW
方法。每篇文档使用一个 word
TFIDF
值。
SkipGram
:根据 SkipGram
训练得到 word embedding
,然后我们使用word embedding
的均值来作为 document embedding
。
PVDBOW
:一种 paragraph embedding
模型,其中document
内word
的顺序被忽略。
PVDM
:另一种paragraph embedding
模型,其中document
内word
的顺序被考虑。
LINE
:我们之前的工作提出的大规模信息网络 embedding
模型。我们使用 LINE
模型分别学习 word-word
网络和 word-dococument
网络,分别记作 word-word
网络和 word-document
网络,记作
CNN
:基于卷积神经网络 CNN
模型来监督学习 text embedding
。尽管原始论文用于建模sentence
,我们这里将其改编为适用于长文本在内的一般word
序列。尽管CNN
通常适用于完全标记的 documnet
,但是它也可以通过无监督的 word embedding
从而对模型进行预训练来利用未标记数据,这被记作 CNN(pretrain)
。
PTE
:我们提出的、学习predictive text embedding
的方法。PTE
有多种变体,它们使用 word-word
、word-document
、word-label
的不同组合。
word-label
的版本。
word-word
和 word-label
的版本。
word-document
和 word-label
的版本。
word-word
、word-document
进行无监督训练,然后使用 word-label
来微调的版本。
PTE(joint)
为联合训练异质文本网络的版本。
实验配置:
SkipGram, PVDBOW, PVDM, PTE, PTE
模型:
随机梯度下降的 mini-batch size
设为 1
。
学习率设为 T
为总的迭代步数,
负采样次数为 K=5
。
SkipGram, PVDBOW, PVDM, PTE
模型:word-word
网络共现窗口大小为 5
。
CNN
模型:我们使用 《Convolutional neural networks for sentence classication》
中的 CNN
结构。该结构使用一个卷积层,然后是最大池化层和全连接层。卷积层的窗口大小设为 3
,feature map
数量设为 100
,随机选择训练集的 1%
作为验证集来执行早停。
所有embedding
模型的词向量维度为 100
。
注意:对于 PTE
模型,默认情况下在不同数据集上,超参数均按照上述设置。唯一需要调整的超参数的边采样中的样本数
评估方式:一旦构建或学习了 document
的向量representation
,我们就会使用相同的训练数据集应用相同的分类过程。具体而言,训练集中的所有文档都用于 representation learning
阶段和classifier learning
阶段。
如果使用无监督 embedding
方法,则在 representation learning
阶段不使用 document
的类别标签,仅在classifier learning
阶段使用类别标签。
如果使用 predictive embedding
方法,则同时在这两个阶段都使用类别标签。
对于测试数据集,我们在这两个阶段都留出 hold-out
标签数据和 document
文本。
注意:在
representation learning
阶段保留所有测试数据,即这一阶段模型看不到测试数据的标签、也看不到测试数据的文本。
在分类阶段,我们使用 LibLinear package
中的 one-vs-rest
逻辑回归模型,并评估 micro-F
和 macro-F1
指标。每一种配置我们都执行十次,并报告指标的均值和方差。
我们在 20NG,Wiki,IMDB
数据集上的长文本效果对比如下。
首先我们比较无监督 text embedding
方法,可以看到:
具有 document-level
的 word
共现的 embedding
中表现最好。
PVDM
性能不如 PVDBOW
,这和原始论文中的结论不同。不幸的是我们始终无法得出他们的结论。
然后我们比较 predictive embedding
方法,可以看到:
PTE(joint)
效果最好。
所有带 word-label
网络PTE
方法都超越了对应的无监督方法(即 LINE
模型),这表明了在监督学习下 predictive text embedding
的强大能力。
PTE(joint)
超越了
PTE(joint)
也超越了PTE(pretrain)
,这表明联合训练未标记数据和标记数据,要比将它们分别独立训练并微调更有效。
另外我们通过 embedding
来对 CNN
进行预训练,然后使用 label
信息对其进行微调。出乎意料的是:预训练 CNN
在 20NG
和 IMDB
数据集上显著提高,并且在 Wiki
上几乎保持不变。这意味着训练良好的无监督 embedding
对 CNN
进行预训练非常有用。
但是,即使是预训练的 CNN
,其性能仍然不如 PTE(joint)
。这可能的因为 PTE
模型可以联合训练标记数据和未标记数据,而 CNN
只能通过预训练和微调两阶段来各自独立的使用标记数据和未标记数据。
PTE(joint)
也始终优于经典的 BOW
模型,尽管 PTE(joint)
的 embedding
向量维度远小于 BOW
的向量维度。
我们在 RCV1
数据集上的长文本效果对比如下。由于word
之间的顺序丢失,因此要求保留word
顺序信息的 embedding
方法不适用。这里我们观察到了类似的结论:
predictive embedding
方法超越了无监督 embedding
。
PTE(joint)
方法比 PTE(pretrain)
方法更有效。
我们比较了 CNN
和 PTE(joint)
在 IMDB
数据集上的训练实践。我们采用异步随机梯度下降算法,在 1T
内存、2.0G HZ
的 40
核 CPU
上执行。平均而言 PTE(joint)
要比 CNN
快 10
倍以上。当使用 pretrain
时,CNN
虽然训练速度加快,但是仍然比 PTE(joint)
慢 5倍以上。
我们在短文本上比较了模型性能如下。
首先我们比较无监督 text embedding
方法,可以看到:
结合了 document-level
和local-context level
的 word
共现的
使用局部上下文级别 word
共现的 document
级别 word
共现的 document
级别的 word
共现非常稀疏。我们在主题模型中也观察到了类似的结果。
PVDM
性能仍然不如 PVDBOW
性能,这和长文本中结论一致。
然后我们比较 predictive embedding
方法,可以看到:
PTE
在 DBLP,MR
数据集上性能最佳,CNN
在 Twitter
数据集上性能最好。
融合了word-label
网络的 PTE
方法超越了对应的无监督embedding
方法(即 LINE
模型),这和长文本中结论一致。
PTE(joint)
超越了
PTE(joint)
超越了 PTE(pretrain)
,这证明了对标记数据和未标记数据联合训练的优势。
我们观察到 PTE(joint)
并不能始终超越 CNN
。原因可能是单词歧义( ambiguity
)问题,这类问题在短文本中更为严重。
CNN
通过在卷积核中使用局部上下文的word
顺序来减少单词歧义问题,而 PTE
抛弃了word
顺序。我们相信:如果利用了word
顺序,则 PTE
还有很大提升空间。
我们考察标记样本规模的变化对 CNN
和 PTE
的影响。我们考虑两种模式:
监督学习:不包含未标记数据。如 CNN
。
半监督学习:包含未标记数据。如 PTE(joint)
、CNN
等。
在半监督学习中,我们还比较了经典的半监督方法:带 EM
的朴素贝叶斯(NB+EM
)、标签传播算法( label propagation:LP
)。
可以看到:
CNN
和 PTE
随着标记数据规模的增加,性能持续改善。
在监督学习的 CNN
和 CNN
或可与 CNN
媲美。
在半监督学习的 CNN(pretrain)
和 PTE(joint)
之间,PTE(joint)
始终优于 CNN(pretrain)
。
PTE(joint)
还始终优于经典的 NB+EM
和 LP
方法。
另外我们还注意到:
当标记数据规模不足时,使用无监督 embedding
的预训练 CNN
非常有效,尤其是在短文本上。当训练样本太少时,它甚至优于所有的 PTE
。
当标记数据规模增加时,预训练 CNN
并不总是能够改善其性能,如 DBLP
和 MR
数据集。
对于 SkipGram
模型,增加标记数据规模几乎不会进一步改善其性能。
在 DBLP
数据集上,当标记样本太少时 PTE
性能甚至不如 SkipGram
。原因是当标记数据太少时,word-label
网络的噪音太多。PTE
将 word-label
网络与噪音较少的 word-word, word-document
网络同等对待。一种解决办法是:在标签数据不足时,调整 word-label, word-word, word-document
网络的采样概率。
我们考察未标记数据规模的变化对 CNN(pretrain)
和 PTE
的影响。由于篇幅有限,这里我们仅给出 20NG
和 DBLP
数据集的效果。对于 CNN
,未标记数据可用于预训练。对于 PTE
,未标记数据可用于预训练或联合训练。
在 20NG
数据集上,我们使用 10%
文档作为标记数据,剩余文档作为未标记数据;在 DBLP
数据集上,我们随机抽取其它会议发表的 20
万篇论文的标题作为未标记数据。
我们使用 CNN
的预训练模型。可以看到:
当未标记数据规模增加时,CNN
和 PTE
性能都有改善。
对于 PTE
模型,未标记数据和标记数据联合训练的效果要优于“预训练和微调”的方式。
PTE
模型除了训练步数 T
之外,大多数超参数对于不同训练集都是不敏感的(如学习率、batch size
),所以可以使用默认配置。
我们在 20NG
和 DBLP
数据集上考察了 PTE(joint)
对于参数 T
的敏感性。可以看到:当 T
足够大时,PTE(joint)
性能会收敛。
实际应用中,我们可以将 T
的数量设置称足够大。经验表明:T
的合理范围是异质文本网络中所有边的数量的几倍。
我们给出了无监督 embedding
(以 predictive embedding
(以 20NG
数据集上采用 tSNE
可视化的结果。
我们对训练集和测试集的文档均进行了可视化,其中 document embedding
为document
内所有word embedding
的均值。可以看到:在训练集和测试集上,predictive embedding
均比无监督 embedding
更好地区分了不同的类别。这直观表明了 predictive embedding
在文本分类任务中的强大能力。
无监督 embedding
使用的基本信息是局部上下文级别或者document
级别的word
共现。
在长文本中,我们可以看到document
级别的word
共现比局部上下文级别的word
共现效果更好,并且二者的结合并不能进一步改善效果。
在短文本中,局部上下文级别的word
共现比document
级别的word
共现效果更好,并且二者的结合可以进一步改善效果。这是因为document
级别的word
共现受到文本长度太短的困扰,即文本太稀疏。
predictive embedding
中:
与 PTE
相比, CNN
模型可以更有效地处理标记信息,尤其是在短文本上。这是因为 CNN
的模型结构比 PTE
复杂得多,尤其时 CNN
可以在局部上下文中利用词序从而解决word
的歧义问题。因此,在标记数据非常稀疏的情况下,CNN
可以超越 PTE
,尤其是在短文本上。但是这个优势是以大量的计算、详尽的超参数调优为代价的。
与 CNN
相比,PTE
训练速度更快、超参数调整更容易(几乎没有需要调整的超参数)。当标记数据更为丰富时,PTE
的性能至少和 CNN
一样好并且通常更好。
PTE
模型的一个明显优势是它可以联合训练标记数据和未标记数据。相比之下 CNN
只能通过预训练来间接利用未标记数据。当标记数据非常丰富时,这种预训练并不总是有帮助的。
实践指南:基于上述讨论,我们提供以下实践指南。
当没有标记数据时:
在长文本上使用 text embedding
。
在短文本上使用 text embedding
。
当只有少量标记数据时:
在长文本上使用 PTE
来学习text embedding
。
在短文本上使用 CNN(pretrain)
,其中预训练采用
当有大量标记数据时:
在长文本上使用 PTE(joint)
来学习 text embedding
。
在短文本上从 PTE(joint)
、CNN
或者 CNN(pretrain)
三者之间选择,其中主要考虑训练效率和模型效果之间的平衡。
未来方向:PTE
中考虑 word
的词序。